package behavioralPattern.templateMethod.example01;

/**
 * 抽象模板角色
 */
public abstract class AbstractTemplate {
    void step_1(String key){
        System.out.println("在模板类中 -> 执行步骤 1");
        if (step_2(key)){
            step_3();
        }else {
            step_4();
        }
        step_5();
    }

    boolean step_2(String key){
        System.out.println("在模板类中 -> 执行步骤 2");
        if ("x".equals(key)){
            return true;
        }
        return false;
    }
    abstract void step_3();
    abstract void step_4();

    void step_5(){
        System.out.println("在模板类中 -> 执行步骤 5");
    }

    void run(String key){
        step_1(key);
    }
}
